package com.itheima.reggie.demo;

import javax.lang.model.element.VariableElement;

/**
 * ThreadLocal线程变量容器使用演示
 *
 * @Author Vsunks.v
 * @Date 2022/8/11 12:06
 * @Blog blog.sunxiaowei.net/996.mba
 * @Description: ThreadLocal线程变量容器使用演示
 */
public class ThreadLocalDemo {

    // 要保证使用的 是同一个ThreadLocal对象
    public static ThreadLocal<String> tl = new ThreadLocal<>();

    public static void main(String[] args) {

        // main方法中定义字符串
        String str = "reggie nibility";


        // 方式1：通过方法传参的方式
        new ThreadLocalDemo().test1(str);
        // 方式2：通过Threadlocal对象
        // test2方法是在main方法执行的调用链中，属于同一个线程
        new ThreadLocalDemo().test2();
        tl.set(str);
    }

    public void test1(String str) {

        // 想要使用main中定义好的str
        System.out.println("str在test1中 = " + str);
    }

    public void test2() {
        String str = tl.get();

        // 想要使用main中定义好的str
        System.out.println("str在test2中 = " + str);
    }


}
